package com.zdxlz.fcmp.business.vo;

import com.zdxlz.fcmp.common.core.basevo.BaseVo;
import com.zdxlz.fcmp.common.mybatis.enums.*;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * @author aman
 * @description IPSec模板配置表响应实体
 * @date 2025/2/11 16:18
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class IpsecVpnTemplateConfigVo extends BaseVo {

    /**
     * 模板名称
     */
    private String name;

    /**
     * 1: Site-to-Site 2: PC-to-Site，枚举类：IpsecTypeEnum
     */
    private IpsecTypeEnum ipsecType;

    /**
     * (1:隧道模式； 2：传输模式)，枚举类：EncapsulationModeEnum
     */
    private EncapsulationModeEnum encapsulationMode;

    /**
     * IKE验证方法(PreShareKey/X509)，枚举类：IkeVerifyMethodEnum
     */
    private IkeVerifyMethodEnum ikeVerifyMethod;

    /**
     * IKE验证算法,（MD5/SHA1/SHA256）默认SHA1，枚举类：IkeVerifyAlgorithmEnum
     */
    private IkeVerifyAlgorithmEnum ikeVerifyAlgorithm;

    /**
     * IKE加密算法,（DES/3DES/AES128/AES192/AES256），枚举类：IkeEncryptAlgorithmEnum
     */
    private IkeEncryptAlgorithmEnum ikeEncryptAlgorithm;

    /**
     * IKE组参数,(none/group1/ group2/ group5/ group14)，枚举类：IkedhGroupEnum
     */
    private IkedhGroupEnum ikedhGroup;

    /**
     * IKE身份类型
     */
    private String ikeType;

    /**
     * IPSec认证算法（MD5/SHA1/SHA256），枚举类：IpsecAuthAlgorithmEnum
     */
    private IpsecAuthAlgorithmEnum ipsecAuthAlgorithm;

    /**
     * IPSec加密算法,(3DES /AES128 /AES192/ AES256)，枚举类：IpsecEncryptAlgorithmEnum
     */
    private IpsecEncryptAlgorithmEnum ipsecEncryptAlgorithm;

    /**
     * IPSecDH组(none/group1/ group2/ group5/group14/group19/group20/group21)，枚举类：IpsecPfsEnum
     */
    private IpsecPfsEnum ipsecPfs;

    /**
     * IPSecSA流量生命周期,单位秒
     */
    private Integer ipsecSatrafficPeriod;

    /**
     * AH认证算法,（MD5/SHA1/SHA256），枚举类：AhAuthAlgorithmEnum
     */
    private AhAuthAlgorithmEnum ahAuthAlgorithm;

    /**
     * IPSec封包协议（AH/ESP），枚举类：IpsecTransformEnum
     */
    private IpsecTransformEnum ipsecTransform;

    /**
     * IKESA时间生命周期
     */
    private Integer ikeSaperiod;

    /**
     * IPESCSA生命周期, 单位秒
     */
    private Integer ipsecSatimePeriod;

    /**
     * 连接是否启用(false：去使能 true：使能)
     */
    private Boolean dpdEnable;

    /**
     * DPD重传间隔,单位秒
     */
    private Integer dpdDpdretry;

    /**
     * DPD空闲时间（单位秒）（DPD重传间隔 * DPD空闲时间）
     */
    private Integer dpdThreshold;

    /**
     * 备注
     */
    private String remark;
}
